/**
 * 文章相关请求模块
 */

import ajax from '../utils/request'

/**
* 查询文章
*/
export const getArticles = (queryObj) => {
  // ajax请求就是后端给出了答案的填空题
  // 接口文档地址：https://gitee.com/fanyoufu2/hmpc/blob/master/doc/00-%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3.md#%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF-23
  // ------参数-----
  /**
   *
   * 参数名称 是否必须  示例   备注
    status      否      文章状态，0-草稿，1-待审核，2-审核通过，3-审核失败，4-已删除，不传为全部
    channel_id  否      频道 id，不传为全部
    begin_pubdate 否 2019-01-01 起始时间，不传就不限定开始时间
    end_pubdate   否 2019-01-02 截止时间，不传就不限定结束时间
    page        否        页数，默认是 1
    per_page    否        每页数量，默认每页 10 条
    response_type 否        返回数据的字段，不传返回用于内容管理的字段，传 comment 返回用于评论管理的字段，传 statistic 返回用于图文数据的字段

    对于axios来说，在哪里填充入参数：
    如果参数要放在请求体中的，则要写在 data
    如果参数要放在请求行中的(get)，则要写在 params
    如果明确说明参数要放在header中，则要写在headers
  */

  return ajax({
    method: 'GET',
    url: '/mp/v1_0/articles',
    params: queryObj
  })
}

/**
 * 获取文章频道
 */
export const getArticleChannels = () => {
  return ajax({
    method: 'GET',
    url: '/mp/v1_0/channels'
  })
}

/**
 * 删除文章
 * @param {*} articleId 要删除的文章编号
 */
export const deleteArticle = articleId => {
  return ajax({
    method: 'DELETE',
    url: '/mp/v1_0/articles/' + articleId
  })
}

/**
 * 添加文章
 * @param {*} isDraft  是否是草稿
 * @param {*} article
 * title string 必须  文章标题
 * content string 必须  文章内容
 * cover object 必须  封面
 * ├─ type integer 必须  封面类型 -1:自动，0-无图，1-1张，3-3张
 * ├─ images string [] 必须
 * item 类型: string
 * channel_id integer 必须  文章所属频道id
 */
export const addArticle = (isDraft, article) => {
  return ajax({
    method: 'POST',
    url: '/mp/v1_0/articles',
    params: {
      draft: isDraft
    },
    data: article
  })
}

/**
 * 获取指定文章详情
 * @param {*} id  文章编号
 */
export const getArticle = id => ajax({ method: 'GET', url: '/mp/v1_0/articles/' + id })

/**
 * 修改文章
 * @param {*} id 文章编号
 * @param {*} data 文章详情
 */
export const modArticle = (id, data) => {
  return ajax({
    method: 'PUT',
    url: '/mp/v1_0/articles/' + id,
    data: data,
    params: {
      draft: false
    }
  })
}
